package web.suzy.oj.utils;

import org.springframework.core.annotation.AnnotationUtils;

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;

/**
 * YangSuzy 软件工作室
 * 类名: ServiceContextUtils
 * 描述: 服务上下文工具类
 * 功能: ---- 待定 -----
 *
 * @author YangSuzy
 * Date: 2022/11/14 16:33
 */
public class ServiceContextUtils {
    /**
     * 方法名: getAnnotation
     * 描述: 先从method上获取注解，获取不到再从class上获取
     *
     * @param method          方法
     * @param clazz           类
     * @param annotationClass 要获取的注解
     * @return T
     * @date 2022/11/14 16:33
     * @auther YangSuzy
     **/
    public static <T extends Annotation> T getAnnotation(Method method, Class<?> clazz, Class<T> annotationClass) {
        T annotation = AnnotationUtils.getAnnotation(method, annotationClass);
        if (annotation == null) {
            annotation = AnnotationUtils.findAnnotation(clazz, annotationClass);
        }
        return annotation;
    }
}
